MuRAT Multi-Resolution (seismic) Attenuation Tomography
SYSTEM: The program works on all Mac and Linux computers where it has been tried.
MATLAB Version: The code keeps the us of toolboxes to a minimum. However, there are four necessary toolboxes: Signal Processing, Curve Fitting, Image Processing and Mapping Toolboxes. The parallel computing toolbox is highly recommended for speed.
Two sample datasets (Mount St. Helens and Romania) can be downloaded at www.lucadesiena.com to test the code.
INSTRUCTIONS: The current release (3.0) works following these steps:
- Download the package at https://github.com/LucaDeSiena/MuRAT.
- Download the two sample datasets at https://www.lucadesiena.com/murat.
- Unzip the MSH (Mount St. Helens) and Romania datasets and put the folders in the Murat-master folder.
- Build your own input file (.m) - each field is described in the attached README file and in the example INPUT code. Build your Input files fom those.
- Run MuRAT3.m and select the name of the input file you created.
Author: L. De Siena, December 2020
INPUTS AND CHECKS
The code asks for an input file, build one from the sample files provided and select it after prompt
addpath('./Utilities_Matlab')
[file,path] = uigetfile('Murat_input*.mlx');
disp('User selected Cancel');
disp(['User selected ', fullfile(path,file)]);
end
User selected /Users/lucadesiena/Documents/MATLAB/MuRAT3D/Murat_inputMSH.mlx
run(fullfile(path, file));
The Murat_checks function calculates all the computational inputs that are used in the following computations. The most important is the velocity model, which will be represented as a real or false 3D depending on user choice.
Murat = Murat_checks(Murat);
Murat.input = orderfields(Murat.input);
save Murat_checks.mat Murat
SEISMIC DATA PROCESSING AND FORWARD MODELLING
The most consuming part of the code, it includes a parallelized for loop. It builds both data vectors and inversion matrices for the inversion.
if Murat.input.parallelized == 1
Murat = Murat_dataParallelized(Murat);
Murat = Murat_data(Murat);
end
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 8).
toc
Elapsed time is 22.172524 seconds.
save Murat_forward.mat Murat
TOMOGRAPHIC INVERSIONS
This function inverts for the total attenuation, absorption, and scattering in 3D.
disp('Inversion Section')
Murat = Murat_inversion(Murat);
save Murat_inverse.mat Murat
CREATING PLOTS
Murat = Murat_plot(Murat);
save('Murat.mat','Murat');